Skip to content
On this page

总结

  • 进入插入模式

    • i: 进入插入模式,并定位光标至当前字符之前
    • I: 进入插入模式,并定位光标至当前行首
    • a: 进入插入模式,并定位光标至当前字符之后
    • A: 进入插入模式,并定位光标至当前行尾
    • o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行
    • O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行
  • 进入普通模式

    • <esc>: 过于偏远,按键不方便。
    • <ctrl-[>: 推荐这个
    • <ctrl-c>: 在命令行中不太好用,所以推荐上面的

提问

  • [x] 1. 如何进入 insert mode
    • i: 进入插入模式,并定位光标至当前字符之前
    • I: 进入插入模式,并定位光标至当前行首
    • a: 进入插入模式,并定位光标至当前字符之后
    • A: 进入插入模式,并定位光标至当前行尾
    • o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行
    • O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行
  • [x] 2. 如何退出 insert mode
    • <esc>: 过于偏远,按键不方便。
    • <ctrl-[>: 推荐这个,有时候 <ctrl-c> 有其它占用
    • <ctrl-c>: 在命令行中不太好用,所以推荐上面的

1. 前提提要、场景

都听说过 vim 的好处,操作起来十分便捷,但由于前期的学习负担较大,转换过程十分痛苦,很多人在黎明到来前就放弃了。

我适应了两个星期,现在日常开发也是用 vscode 的 vim 插件,感觉没有那么难了,基本可以抛弃鼠标和方向键,真香。后期的开发效率还会随着熟练度逐步提高,上限较高。所以熬一熬吧,挺值的。

推荐看这个视频,了解个大体的概念。https://prezi.com/view/RKhL17TysQ2tqvADpZDV/

自己新建一个文档,不要一股脑跟着网上抄,吃不消。该文档只用来记录日常使用的快捷键,在开发时遇到痛点,再去找对应的解决方案并记下。这样负担小,且这个文档也能被自己慢慢吸收。

vim 可以将你手的活动范围控制在主区域即字母区域,但需要有良好的键盘使用习惯。例如两个食指在 f j 处,且各个手指负责各个区块,各司其职,不会出现类似中指去按 o,食指去按 , 的情况。可以通过 https://www.typingclub.com/(科学上网) 去练习键盘使用习惯。十分推荐,该网站做的超级棒。甚至可以单独锻炼某根手指,可以每天安排 10 分钟练习。

2. 文件中的基础练习

sh
# 新建一个文件 Readme.md,输入字符
$ vim Readme.md
  1. vim Readme.md: 新建并打开一个文件 Readme.md,此时处于 normal mode
  2. i: 进入 insert mode,此时可正常编辑文字。
  3. # hello, vim: 此时处于 insert mode,输入字符 # hello, vim
  4. <esc>: 退出 insert mode,此时处于 normal mode
  5. :: 进入 command mode
  6. :wq: 在 command mode 下继续输入 :wq,保存退出。

已经接触了三种模式:

  • normal: 普通模式,刚进入 vim 的默认模式,也是最重要的模式。 确保大部分操作在普通模式下完成,而不是插入模式。
  • insert: 插入模式。在普通模式下通过 i 进入插入模式,在插入模式下进行文字编辑。在插入模式中,是没法控制光标移动的。
  • command: 命令模式。在普通模式下通过 : 进入命令模式,在命令模式下执行命令。

3. insert mode commands 进入插入模式

以下按键都可以从 normal 进入 insert 模式

  • i: 进入插入模式,并定位光标至当前字符之前
  • I: 进入插入模式,并定位光标至当前行首
  • a: 进入插入模式,并定位光标至当前字符之后
  • A: 进入插入模式,并定位光标至当前行尾
  • o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行
  • O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行

4. normal mode commands 进入普通模式

以下按键都可以从 insert 进入 normal 模式

  • <esc>: 过于偏远,按键不方便。
  • <ctrl-[>: 推荐这个
  • <ctrl-c>: 在命令行中不太好用,所以推荐上面的